#ifndef     _TRACE_ROUTE_H_
#define     _TRACE_ROUTE_H_

#include "RawSocket.h"

struct rec
{
    u_short rec_seq;
    u_short rec_ttl;
    struct timeval rec_val;
};

u_short sport, dport;
int probe, nprobes;
int sendfd, recvfd;
int ttl, max_ttl;

char* icmpcode_v4(int);
int recv_v4(int, struct timeval *);
void sig_alarm(int);
void traceloop(void);

// struct TracerouteProto
// {
//     const char *(*icmpcode)(int);
//     int (*recv)(int, struct timeval*);
//     struct sockaddr *sasend;
//     struct sockaddr *sarecv;
//     struct sockaddr *salast;
//     struct sockaddr *sabind;
//     socklen_t salen;
//     int icmpproto;
//     int ttllevel;
//     int ttloptname;
// }*TraceroutePr;


#endif //_TRACE_ROUTE_H_